package API.RegexDome;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * ClassName:RegexText012
 * Package:API.RegexDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/1-19:59
 * @Version:v1.0
 */
public class RegexText012 {
    /*
    * 贪婪爬取和非贪婪爬取
    *
    * Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa经历了
    * 很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,
    * 支持版本是Java17,相信在不久Java也会逐渐登上历史舞台
    *
    * 需求1：按照ab+的方式爬取ab,b尽可能多获取
    * 需求2：按照ab+的方式爬起ab,b尽可能少获取
    *
    * 贪婪爬取：在爬取数据的时候尽可能多地获取数据
    * 非贪婪爬取：在爬取数据的时候尽可能少的获取数据
    *
    *
    * Java当中,默认的就是贪婪爬取
    * 如果我们在数量词+ * 后面加上问号,那么此时就是非贪婪爬取*/
    public static void main(String[] args) {
        String s =" Java自从95年问世以来,abbbbbbbbbbbbbbbbbbbbbbaaaaaaaaaaaaaaaaaaa经历了\n" +
                "   很多版本,目前企业中用的最多的是Java8和Java11,因为这两个是长期支持版本,\n" +
                "   支持版本是Java17,相信在不久Java也会逐渐登上历史舞台";

        System.out.println("----贪婪爬取----");
        String regex = "ab+";
        Pattern pattern = Pattern.compile(regex);
        Matcher m = pattern.matcher(s);
        while (m.find()){
            String str = m.group();
            System.out.println(str);//abbbbbbbbbbbbbbbbbbbbbb
        }
        System.out.println("----非贪婪爬取----");
        String regex1 = "ab+?";
        Pattern pattern1 = Pattern.compile(regex1);
        Matcher m1 = pattern1.matcher(s);
        while (m1.find()){
            String str1 = m1.group();
            System.out.println(str1);//abbbbbbbbbbbbbbbbbbbbbb
        }
    }
}
